Server
Sitemap ' Game Server ' * See also Game_Mechanisms * See also Client_Asset_Cache --- --- --- --- --- The Central Server Farm of Company-run computer Servers which runs the game : * Network Interface (user-session Front Ends - linking to other Servers) * Simulation Processing * Database * AI Units (to control NPCs) * Game Data Caching ("Dictionary" access sending data to Client machines) * Login System (with proper security) * Player Community Websites (Email/Forums/Tool Downloads/Tutorials/Documentation) * Player_Created_Assets servers system (coordinates Asset creation) * Web Servers (to handle the web based interfaces (ie- Mini_Games) tied into the Main Game) * TEST SERVERS to facilitate testing in the Player Creation process --- --- --- --- --- Game Server Architecture - Offloading Processing Loads to Client machines (when appropriate) : Situations like your 'Team base', where there generally is not alot of battle going on and likely a large number of objects (all the accumulated materials and tools/equipment which wont be allowed to be crammed into infinite capacity 'chests' or some magical 'bank'). There are many various (hopefully) amusing interactive items to be 'played with' OR EVEN BETTER prove to have real utility value (all requiring graphics scripting for all the animations and effects, which could likely be locally handled by the Client's graphics anyway). It would be kind of a local/private Server Node rendering stuff other Players rarely see, but Players will interact with their own constantly. 'Bookkeeping' validation is still done thru the Server (to block any cheats) but only has to be abstracted there (transiting only when something of significant happens) , leaving a majority of the high-detailed simulations/presentation/interactions to run on the Player's Client computer. Elsewhere mentioned - having Team NPCs AI (artificial intelligence behavior) run locally would also be a huge chunk of processing, which could be off-loaded from the Servers/Network. I've actually seen a rudimentary version of this done on LOTRO Lord Of The Rings Online, where certain Quest NPCs and objects only appear to the person running that Quest and is not visible to other people in their 'Fellowship' party who don't share the Quest. THAT would be something to avoid in my MMORPG- if its there and another Player is present these things should be visible (many of the savings come when there are NOT other Players around to see all the fancy/detailed things going on locally, and requires a more complicated game mechanism to facilitate it). --- --- --- Pseudo Cloud Processing of AI. No, NOT The Thinker (though that may end up the Nickname for the MMORPGs Server AI System) This proposed MMORPG game has all these NPCs running about living their 'lives' semi-realistically (and the behavior programming eating alot of CPU on the Servers -- meaning MORE Servers $$$$ -- that the company might not like). It is possible that most Player Client machines are mostly GPU bound running the Player's 3D rendering, and would have several free CPU cores (most have LOTS of available memory these days). MOST clients could then help run part of the world simulation (NPCs) within the immediate area of the Player (and thus reuse the game state feed ALREADY being sent to the Client -- so extra Network Traffic wouldn't be needed for the NPC's situational environment). Wimpy computer machines would be excluded, of course, as you don't want to load them down when they have enough trouble running the Basic game Client -- the AI would be Farmed out only if the machine had sufficient extra CPU capacity). This would of course take second priority to AI for the Players 'team' of NPCs in hazardous areas. The 'cheat' security aspect probably wouldn't matter as the NPC data being processed wouldn't be tied to any known Player (no benefit to cheat) and AI tasks get shuffled quite frequently. The city NPCs are pretty much nerfed, and can't do much harmful stuff anyway. Money/trade related behavior might be run *server-only* to avoid any use to hacking this off-loaded AI. Alot of background/routine activities could be handled, and as soon as anything significant starts taking place then the involved NPCs could be shifted back to the 'safe' server processing The thing I mentioned elsewhere, which has Players leave their game machines on to 'help' the Servers, could still be done. It is just that active Clients will be a bigger pool of more reliable/regular processing resources to be counted upon. --- --- --- Overpopulation in Rapture - Player Server Counts ' : So what happens when there are MORE people playing the MMORPG than ever were supposed to be IN Rapture (20k-40k) ? The Max population also has to include the NPCs present (the drudges who do all the boring stuff). Obviously there were more survivors than was portrayed in the few disturbed/disrupted/wrecked places we visited in the Solo games (and the total might have remained stable during Rapture's Chaos period (except in Lamb's little commune, where there was a marked decline), and potentially even made up for some of the Civil War losses). But will it simply look wrong if every other Player has a business/residence, and the New Rapture area cluster is choked with more of those than the Original Rapture itself could have had ??? How quickly would the rest of the City be explored and salvaged (losing the adventuring part of the game)? SO there would NEED TO BE multiple Worlds to have somewhere for the Player multitudes to inhabit without overpopulating the setting. Usually separate Servers are also needed if there are foreign languages supported (might be weird to see Rapture with all the signs and NPCs speech in Spanish/French/German/Russian/Mandarin/etc.. -- HMMMMMM, may need tourist rights to once-in-a-while go visit those other Servers). So what limit on how many customers (Player Characters) per Server World is reasonable ? Many Players are not on at the same time, others may only be ONLINE using the 'tablet'/'smartphone' interface, which can use alot less Server resources (and with no Player Avatar walking about). Many Players will be off doing the 'interesting' things across the Rapture World map (many MMORPG game 'cities' are virtually ghost towns, with little Player interaction anyway (these days). Whereas in the BioShock MMORPG, that game aspect (Player-Player interaction) would be much more important/prevalent.) But when large® numbers are on the Servers at the same locations, the Server processing has to be able to handle it. In this MMORPG, the local situations around each Player has high complexity/activity (smart NPCs, prop interactions), so that having them overlap the same areas may not require so much more Server processing as compared to spreading Players out does. Regional Servers to minimize Internet 'distances' -- it means you can't load level Server resources as much - by shifting Server Farm machine usage with assignments from worlds of low Player usage to the 'Worlds' with more Players on at that time of day. '''Ideas ': With multiple 'Worlds' (copies of the game simulations) running simultaneously, they might be coordinated to use SOME of the NPC filler actions/behaviors (scripting simply to be generated once and then replicated on all the Worlds) -- particularly if the Players do not directly interact with them (background activities). But only some high-use locations will have Players present constantly enough to warrant that. It might be unworkable if there is too much varying between local world 'environments' and behavior flavoring (due to local Player-caused changes and customizations). ((One of those things that is more trouble than it is worth to implement.)) The Player Asset Creation process has its own Servers, and some activities also require some significant Server resources, but those are not high-powered instant-response/timely-processing oriented (except on the small game Testing Servers). --- --- --- '''Massive Streaming Content (A Server Thing) : Needed for the constant MMORPG game Terrain and Asset updates (most of this game World is not static like other MMORPG games). IF some Player changes their little part of Rapture or changes things by their actions, resulting in that part of the Terrain being modified - those changes need to be transmitted eventually to other Players - generally when they get in proximity to that area. The previously Saved (at the client's disk) Terrain and Assets belonging to that area would then need to have all changes updated/corrections made to them before the Player sees them. (Any Avatar equipment visible likewise might be new and needing to be downloaded.) Player connection bandwidth can limit Game World data update speed transmission (even with data maximally compressed). Connection Speeds are getting better, but still the median capacity for most Players needs to be pretty high). The Most important data can go first (can include default/simplified 'Filler Data' to patch in place of eventually-loaded 'Detailed Data'). Terrain/Objects seen from a distance, where fine levels of data are not visible, can be represented for a while in their simpler form. If the Player never gets any closer, that is sufficient, though it is better to preload the higher/fine detail in case the Player DOES suddenly move close enough to see/interact. Doing this will always have some measure of compromise. The MMORPG may need some (clever) delaying tactic for Missions WHEN complex/large unique Assets are known to be soon required (to have them be preloaded BEFORE the Player reaches the location) - when they NEED to be seen by the Player). This is what happens in existing games when you enter a new level (and even then most comes from your disk and not the network). Many of this MMORPG's Missions run in Server Bubbles that are largely created/generated on-the-fly, and thus have ALOT of custom content. A Mission scenario would be loaded in order, with the data for further progress being loaded while the Player is busy playing an earlier section. The Players Gaming Machine (PC) can update certain data while the Player is offline (with a background feed prioritized for places the Player frequently visits - to be immediately ready when they are playing). New Assets to be added to their local Disk-based 'Encyclopedia/Dictionary' would be frequent. Once downloaded, Asset data is saved to disk into a Library File, so that it only needs to be loaded across the network once, or subsequently only the parts of it which have been changed in-game (Download limits for Internet service are NOT going away - so lets save on unneeded resending of the same data, and disk space is always getting cheaper). Templates are a major feature which helps with all this. Faster Disks (SSD) will help fast reloading of data subsets (Templates and map Objects) which have already been archived/locally-saved (which had previously been downloaded). (( Are You Bored To Tears, Yet ??)) --- --- --- The MMORPG Server Farm : Virtual Machine (VM) 'farm' for handling the Game Server Processing Load - for certain processing uses. Example - NPC AI and for 'Mission' Bubble Sims (These processing Loads shift, and it can require ALOT more Server processing where Players are located online in the Game World. This includes load balancing across multiple 'World' images - putting the processing power were and when it is needed ) --- --- --- --- --- . .